<?php
/*
 * Configuracion DAL.
 * @Autor: Inicial.cl.
 */
class ConfiguracionDAL {
	//METODO PARA GRABAR CONFIGURACION.
	public static function grabar($oConfiguracion){
		try{
			$arr = array(
				"{#CLAVE}" => $oConfiguracion->getClave(),
				"{#VALOR}" => $oConfiguracion->getValor()
			);
			$query = Util::getQuery($arr, ConfiguracionSQL::$GRABAR_CONFIGURACION);
			$arrDatos = Bd::exec($query);

			$id = Bd::$IDENTITY; //Retorno id insertado
			return $id;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA EDITAR CONFIGURACION.
	public static function editar($oConfiguracion){
		try{
			$arr = array(
				"{#CLAVE}" => $oConfiguracion->getClave(),
				"{#VALOR}" => $oConfiguracion->getValor()
			);
			$query = Util::getQuery($arr, ConfiguracionSQL::$EDITAR_CONFIGURACION);
			$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA LISTAR CONFIGURACION.
	public static function listar($oConfiguracion){
		try{
			$arr = array(
				"{#CLAVE}" => $oConfiguracion->getClave(),
				"{#VALOR}" => $oConfiguracion->getValor()
			);
			$query = Util::getQuery($arr, ConfiguracionSQL::$LISTAR_CONFIGURACION);
			$arrDatos = Bd::exec($query);
			$arrConfiguracion = array();

			if (count($arrDatos) > 0) {
				foreach ($arrDatos as $row) {
					$oConfiguracion = new Configuracion();

					$oConfiguracion->setClave($row["clave"]);
					$oConfiguracion->setValor($row["valor"]);

					$arrConfiguracion[] = $oConfiguracion;
				}
			}

			return $arrConfiguracion;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA OBTENER POR ID CONFIGURACION.
	public static function obtenerPorId($id){
		try{
			$arr = array(
					"{#ID}" => $id
				);
			$query = Util::getQuery($arr, ConfiguracionSQL::$OBTENER_CONFIGURACION_POR_ID);
			$arrDatos = Bd::exec($query);

			if (count($arrDatos) > 0) {
				$oConfiguracion = new Configuracion();

				foreach ($arrDatos as $row) {
					$oConfiguracion->setClave($row["clave"]);
					$oConfiguracion->setValor($row["valor"]);
				}
				return $oConfiguracion;
			}
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA ELIMINAR CONFIGURACION.
	public static function eliminar($id){
		try{
			$arr = array("{#ID}" => $id);
				$query = Util::getQuery($arr, ConfiguracionSQL::$ELIMINAR_CONFIGURACION);
				$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}
}
?>